package com.chuangke.file.service;

import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.chuangke.file.model.FileBrief;
import com.chuangke.file.model.FileChunk;
import com.chuangke.file.model.FileInfo;

/**
 * @Description
 * @author stm
 * @date 2019年2月24日 下午9:52:09
 */
public interface FileTransferService {

	// 文件上传
	FileInfo upload(FileChunk fileChunk);

	FileInfo upload(MultipartFile file, String dbankId);

	FileInfo upload(MultipartFile file, String dbankId, String parentId);

	FileInfo upload(MultipartFile file, String dbankId, String parentId, String storageType);

	// 上传新的版本文件
	FileInfo reUpload(MultipartFile file, String fileId);

	// 秒传接口
    boolean secondUpload(FileBrief fileBrief);

	// 分块上传
    void uploadChunk(FileChunk fileChunk);

	// 分块上传合并
    void mergeFile(FileBrief fileBrief);

	// 下载文档
	byte[] download(String fileId, String signId);

	// 下载文档
	Map<String, byte[]> download(List<String> fileIds);

	String mkDirByChunk(FileChunk fileChunk);

	FileInfo autoMkDir(String dbankId, String parentId, String path);

	byte[] images(String storageType, String thumStorage1, String thumStorage2);
	
	/**
	 * 仅仅下载文件，不往文件历史表等记录
	 * @param storageType
	 * @param storage1
	 * @param storage2
	 * @return
	 */
	byte[] justDownload(String storageType, String storage1, String storage2);

}
